System.IEquatable.Equals 方法
方法描述
指示当前对象是否等于同一类型的另一个对象。
语法定义(C# System.IEquatable.Equals 方法 的用法)
bool Equals( T other )
参数/返回值
参数值/返回值 | 参数类型/返回类型 | 参数描述/返回描述 |
---|---|---|
other | T | 与此对象进行比较的对象。 |
返回值 | System.Boolean | 如果当前对象等于 other 参数,则为 true;否则为 false。 |
提示和注释
Equals 方法的实现用于测试是否与另一个类型为 T(与当前对象类型相同)的对象相等。 在下列情况下将调用 Equals 方法:
调用 Equals 方法并且 other 参数表示类型为 T 的强类型对象时。 (如果 other 的类型为 Object,则调用基方法 Object.Equals(Object)。 在这两种方法中,IEquatable
调用许多泛型集合对象的搜索方法时。 其中某些类型及其方法包括:
BinarySearch 方法的某些泛型重载。
List
Dictionary
LinkedList
换句话说,若要处理类的对象将存储在数组或泛型集合对象中的可能性,最好实现 IEquatable
实现 Equals 方法时,为泛型类型参数指定的类型定义相应的相等性。 例如,如果类型参数为 Int32,则为两个 32 位有符号整数的比较定义相应的相等性。
对实现者的说明
如果实现 Equals,还应重写 Object.Equals(Object) 和 GetHashCode 的基类实现,以便其行为与 IEquatable
System.IEquatable.Equals 方法例子
然后,Person 对象可存储在 List
public class TestIEquatable { public static void Main() { // Create a Person object for each job applicant. Person applicant1 = new Person("Jones", "099-29-4999"); Person applicant2 = new Person("Jones", "199-29-3999"); Person applicant3 = new Person("Jones", "299-49-6999"); // Add applicants to a List object. Listapplicants = new List (); applicants.Add(applicant1); applicants.Add(applicant2); applicants.Add(applicant3); // Create a Person object for the final candidate. Person candidate = new Person("Jones", "199-29-3999"); if (applicants.Contains(candidate)) Console.WriteLine("Found {0} (SSN {1}).", candidate.LastName, candidate.SSN); else Console.WriteLine("Applicant {0} not found.", candidate.SSN); // Call the shared inherited Equals(Object, Object) method. // It will in turn call the IEquatable(Of T).Equals implementation. Console.WriteLine("{0}({1}) already on file: {2}.", applicant2.LastName, applicant2.SSN, Person.Equals(applicant2, candidate)); } } // The example displays the following output: // Found Jones (SSN 199-29-3999). // Jones(199-29-3999) already on file: True.
版本信息
.NET Framework 受以下版本支持:4、3.5、3.0、2.0 .NET Framework Client Profile 受以下版本支持:4、3.5 SP1 受以下版本支持:
适用平台
Windows 7, Windows Vista SP1 或更高版本, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008(不支持服务器核心), Windows Server 2008 R2(支持 SP1 或更高版本的服务器核心), Windows Server 2003 SP2 .NET Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求。